package com.csz.actions;

import com.csz.control.Pesos;
import com.csz.dao.Persistencia;
import com.csz.sql.NamedQueryContainer;
import com.csz.utils.Toolkit;
import java.util.Arrays;
import java.util.List;
import javax.servlet.RequestDispatcher;

/**
 *
 * @author zanona
 */
public class ActionCalcularPesos extends Action {

    private Pesos pesos = new Pesos();

    @Override
    public void execute() {
        try {
            // Catando o id da pessoa da sessao
            Integer vIdPessoa = (Integer) request.getSession().getAttribute("idPessoa");

            //Buscando no banco os paises que tem haver com os pesos dados pelo kmaradinha
            List params = Arrays.asList( new Object[]{ vIdPessoa });
            List<Object[]> lista = Persistencia.consultarNamedQueryGenerica(NamedQueryContainer.ConsultarPaisPontuacao, params);

            //Consultando quantidade de scores
            List<Object[]> listaQtdScores = Persistencia.consultarNamedQueryGenerica(NamedQueryContainer.ConsultarQtdScores, params);

            //Calculando a parada dos pesos
            List<Object[]> listaResultado = pesos.calcularPesos(lista, listaQtdScores);

            //Ordena a lista pela coluna 2
            Toolkit.shellSort(listaResultado , 2);

            //Mandando lista de resultado pra sessao
            request.getSession().setAttribute("listaResultado", listaResultado);
            
            // Vai tartaruguinha
            RequestDispatcher rd = request.getRequestDispatcher("resultado.jsp");
            rd.forward(request, response);

        } catch (Exception e) {
            request.setAttribute("exception", e.getMessage());
            RequestDispatcher rd = request.getRequestDispatcher("resultado.jsp");
            try {
                rd.forward(request, response);
            } catch (Exception ex) {
            }
        }
    }
}
